export interface ApiResponse<T> {
	data: Resource<T>[];
	resources: {
		albums: Record<string, Resource<Album>>
	};
}

export interface Resource<T> {
	id: string;
	type: string;
	href: string;
	attributes: T;
	relationships: {
		artists: ApiResponse<Artist>;
		tracks: ApiResponse<Track>;
	};
}

export interface Storefront {
	name: string;
}

export interface Artist {
	name: string;
}

export interface Album {
	name: string;
	artistName: string;
	trackCount: number;
	isMasteredForItunes: boolean;
	audioTraits: string[];
}

export interface Track {
	name: string;
	trackNumber: number;
	discNumber: number;
	playParams: object | null;
	hasLyrics: boolean;
	hasTimeSyncedLyrics: boolean;
	extendedAssetUrls: {
		enhancedHls: string;
	};
}

export interface Lyrics {
	ttml: string;
}
